#ifndef _CONSTANT_H_
#define _CONSTANT_H_

#define	RAD (0x00)
#define DEG	(0x01)
#define GRD (0x02)

const int kSquareRoot	=0xff01;
const int kReciprocal	=0xff02;
const int kSign			=0xff03;
const int kCube			=0xff04;
const int kSquare		=0xff05;
////////////////////////////////
const int kSine			=0xff06;
const int kCosine		=0xff07;
const int kTangent		=0xff08;
////////////////////////////////
const int kArcSine		=-0xff06;
const int kArcCosine	=-0xff07;
const int kArcTangent	=-0xff08;
////////////////////////////////
const int kLog10		=0xff09;
const int kLn			=0xff0a;
const int kFactorial	=0xff0b;
const int kExponent		=0xff0c;
const int kToInteger	=0xff0d;
const int kClearCurrent	=0xff0e;	//f(x)==0;
const int kConstantPI	=0xff0f;	//f(x)==M_PI 3.1415...
const int kConstantE	=0xff10;	//f(x)==M_E 2.71828...
const int kConstantEuler=0xff10;	//f(x)==M_E 2.71828..
const int kReset		=0xfff0;	//reset all
////////////////////////////////
////////////////////////////////
const int kMemoryAdd	=0xff2f;
const int kMemoryRead	=0xff20;
const int kMemorySave	=0xff21;
const int kMemoryClear	=0xff22;
////////////////////////////////

/*
 *	Two Masks for Inverse,and Hyp
 */
const int kMaskInv		=0x100000;
const int kMaskHyp		=0x200000;

const int kBackSpace	=0xff73;
const int kCaculate		=0xff74;

////////////////////////////////
const int kDot			='.';
const int kAdd			='+';
const int kMinus		='-';
const int kMuliply		='*';
const int kDivide		='/';
const int kMOD			='%';
const int kPower		='^';

const int kLeftBracket	='(';
const int kRightBracket	=')';
///////////////////////////////////
const int ST_UPDATE_DISPLAY	= 0x01;
const int ST_UPDATE_MEMORY	= 0x02;
const int ST_UPDATE_BRACKET	= 0x03;
const int ST_INTERNAL_ERROR	= 0x04;
const int ST_IGNORE			= 0x00;

const int ERR_DIV_BY_ZERO	=-0x01;
const int ERR_OVER_FLOW		=-0x02;
const int ERR_NEGTIVEROOT	=-0x03;
const int __EASTER_EGG__	=-0x31415;
#endif